package com.jyy.prefabricated.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.jyy.prefabricated.entity.*;
import com.jyy.prefabricated.enums.BaseTeamEnum;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Data
public class StudentsOfficialVo {

    private static final long serialVersionUID = 1L;

    private Integer id;

    /**
     * 机构id
     */
    private Integer trainingOrganizationId;

    /**
     * 姓名
     */
    private String name;

    /**
     * 身份证号
     */
    private String idCard;

    /**
     * 联系电话
     */
    private String tel;

    /**
     * 手机号
     */
    private String mobile;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 状态
     */
    private Integer status;

    /**
     * 租户编码
     */
    private String teamCode = BaseTeamEnum.BASE.getValue();

    private String channelCode;
    /**
     * 报名项目
     */
    private List<ProjectInfo> projects = new ArrayList<>();

    /**
     * 已分配或购买的课程
     */
    private List<Course> courses = new ArrayList<>();


    /**
     * 关联机构
     */
    private List<TrainingOrganization> trainingOrganizations = new ArrayList<>();


    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;

    /*
     *项目id
     */
    private Integer projectId;

    /*
     * 分配状态（0未分配，1已分配）
     */
    private Integer allocationStatus;


    /*
     *项目名称
     */
    private String projectName;

    /*
     *培训机构名称
     */
    private String trainingOrganizationName;


    /**
     * 线上考试记录
     */
    private List<OnlineVo> onlineList = new ArrayList<>();

    /**
     * 线下考试记录
     */
    private List<StudentAchievement> offlineList = new ArrayList<>();


    /**
     * 线上课程记录
     */
    private List<OnlineVo> onlineCourseList = new ArrayList<>();

    /**
     * 线下培训记录
     */
    private List<StudentAchievement> offlineTrainList = new ArrayList<>();



    /**
     * 培训机构账号
     */
    private String account;

    /**
     * 省
     */
    private String province;

    /**
     * 市
     */
    private String city;

    /**
     * 详细地址
     */
    private String address;

    /**
     * 机构联系人
     */
    private String legalPerson;

    /**
     * 机构图片
     */
    private String image;

    /**
     * 营业执照
     */
    private String license;

    /**
     * 信用代码
     */
    private String creditCode;

    /**
     * 是否开启招聘
     */
    private Boolean recruit;

    /**
     * 是否热门企业
     */
    //private Boolean hot;

    /**
     * 机构简介
     */
    private String content;


    /**
     * 可采购项目
     */
    private List<ProjectInfo> canBuyProjects = new ArrayList<>();
    /**
     * 可采购课程
     */
    private List<Course> canBuyCourses = new ArrayList<>();

    /**
     * 可采购课程包
     */
    private List<CoursePackage> canBuyCoursePackages = new ArrayList<>();



    //是否开通企业组卷权限
    private Boolean groupPermissions = false;

    //可开通学员账号数量
    private Integer studentAccountNum;



    /**
     * 用户类型
     */
    private Integer userType;

}
